【问题标题】:visual studio c# does not build files that were change by pre-build eventVisual Studio C# 不构建由预构建事件更改的文件
【发布时间】:2013-12-02 07:32:58
【问题描述】:

我在 Visual Studio 2010 c# 中有解决方案。 在预构建事件中,我执行在此解决方案中更改文件的命令。 更新的文件未在当前版本中构建。 我怎样才能做到这一点,该文件将在当前版本中构建?

谢谢。

【问题讨论】:

  • 你怎么知道文件没有建好?你的适应症是什么?
  • 你能提供一些关于在预构建事件中到底在做什么的信息吗?我可以在几个小时内看看并尝试重现这个
  • 提前非常感谢。我想要做的是将构建时间写入解决方案文件之一。比应用程序运行时 - 单击某个按钮将检索此信息。如果我不够清楚,请告诉我,再次感谢。
  • 它是cs 文件吗?如果不是,文件的类型是什么?
  • 是的,它是一个 cs 文件(assemlyInfo 文件)

标签: c# pre-build-event


【解决方案1】:

好的,看来我知道你的问题了。

我已经设置了一个简单的控制台应用程序和这个事件:

<PreBuildEvent>copy "D:\Program.cs" "D:\Projects\PreBuildFileModification\FileModification\Program.cs" /Y</PreBuildEvent>

唉,这行不通! (复制发生并更新磁盘上的文件,但 Visual Studio 不会检测到这些更改并加载缓存文件)。

解决办法是添加:

<UseHostCompilerIfAvailable>false</UseHostCompilerIfAvailable>

在您的配置中,例如:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
  <PlatformTarget>x86</PlatformTarget>
  <DebugType>pdbonly</DebugType>
  <Optimize>true</Optimize>
  <OutputPath>bin\Release\</OutputPath>
  <DefineConstants>TRACE</DefineConstants>
  <ErrorReport>prompt</ErrorReport>
  <WarningLevel>4</WarningLevel>
  <UseHostCompilerIfAvailable>false</UseHostCompilerIfAvailable>
</PropertyGroup>

现在这就像一个魅力。

Thanks to Rob Butterworth

【讨论】:

  • 非常感谢!!抱歉,我之前没有提到它 - 但我的应用程序是 silverlight 应用程序。我的 web.config 文件无法识别“PropertyGroup”标签...你知道吗?
  • 它不是 web.config,它是 .csproj 文件。除了&lt;UseHostCompilerIfAvailable&gt;false&lt;/UseHostCompilerIfAvailable&gt; 之外的所有内容的 PropertyGroup 应该已经到位。您需要为您拥有的所有平台(x86、x64、AnyCPU 等)和模式(发布、调试等)组合添加它
  • 我的解决方案包含多个项目,我需要对所有 .csproj 文件执行此操作还是仅对主项目中的 .csproj 文件执行此操作?
  • 仅适用于需要在预构建事件中更改文件的项目
  • 不幸的是,它对我不起作用,运行一个 asp .net 核心应用程序。我看看能不能找到解决办法。
猜你喜欢
  • 2012-10-31
  • 1970-01-01
  • 2020-06-06
  • 2010-12-01
  • 2012-10-28
  • 2018-07-20
  • 1970-01-01
  • 2011-06-01
  • 1970-01-01
相关资源
最近更新 更多