Msbuild中的CSC任务因名称空间错误而中止

时间:2009-09-22 18:46:07

标签: msbuildcommunitytasks csc

我尝试过以下方法:

 <!-- Specify the inputs by type and file name -->
<ItemGroup>
    <CSFile Include = "$(MSBuildProjectDirectory)\..\Mine.cs"/>
</ItemGroup>

<Target Name = "Compile">
    <!-- Run the Visual C# compilation using input files of type CSFile -->
       <Csc Sources="@(CSFile)" />
    <!-- Log the file name of the output file -->
    <Message Text="The output file is done"/>
</Target>

这不起作用,因为项目中使用的所有命名空间都会抛出错误。有没有人知道如何显式地从解决方案文件中获取程序集,因为路径是正常的,如果在Visual Studio中加载一切都很好。我需要编写脚本,上面的内容不起作用。有明显的不幸事件吗?

欣赏inpuT: - )

我已经意识到这不会起作用,因为我的文件有几个外部依赖项。因此我需要使用devenv.exe。问题是我得到了以下内容:

我得到的是命令退出代码1?我想让项目构建它所需的所有依赖dll,而无需打开visual studio。

有什么想法吗?

Thnxes: - )

1 个答案:

答案 0 :(得分:0)

试试这个(添加你自己的dlls引用)

<ItemGroup>
  <CSFile Include = "$(MSBuildProjectDirectory)\..\Mine.cs"/>
  <Reference Include="System.dll"/>
  <Reference Include="System.Data.dll"/>
  <Reference Include="System.Drawing.dll"/>
  <Reference Include="System.Windows.Forms.dll"/>
  <Reference Include="System.XML.dll"/>
</ItemGroup>
<Target Name = "Compile">
    <!-- Run the Visual C# compilation using input files of type CSFile -->
       <Csc Sources="@(CSFile)" 
            References="@(Reference)"
            OutputAssembly="$(builtdir)\$(MSBuildProjectName).exe"
            TargetType="exe" />
            />
    <!-- Log the file name of the output file -->
    <Message Text="The output file is done"/>
</Target>