标签: msbuild-task

如何解决"Install-Package:当前环境没有打开解决方案".

我有一个项目的解决方案.打开包管理器控制台,运行Install-Package MSBuildTasks但它在下面给出了一个错误:

Install-Package : The current environment doesn't have a solution open.
At line:1 char:16
+ Install-Package <<<<  MSBuildTasks 
    + CategoryInfo          : InvalidOperation: (:) [Install-Package], InvalidOperationExcep 
   tion
    + FullyQualifiedErrorId : NuGetNoActiveSolution,NuGet.PowerShell.Commands.InstallPackage 
   Command
Run Code Online (Sandbox Code Playgroud)

我不明白为什么会这样.请建议我等待回复.谢谢

msbuild-task visual-studio nuget-package visual-studio-2012

24
推荐指数
1
解决办法
3万
查看次数

MSBuild错误MSB3021:无法复制文件.找不到文件'obj\Release\myWebProject1.dll'

使用TeamCity编译我的MSBuild XML任务脚本时,它失败了:

[10:43:03]: myWebProject1\ myWebProject 1 .csproj (3s)
[10:43:07]: [ myWebProject1\ myWebProject1 .csproj] _CopyWebApplicationLegacy
[10:43:07]: [_CopyWebApplicationLegacy] Copy
[10:43:07]: [Copy] C:\Program Files\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets(131, 5): error MSB3021: Unable to copy file "obj\Release\myWebProject1.dll" to "C:\MSBUILDRELEASE\myWebProject1\\bin\myWebProject1.dll". Could not find file 'obj\Release\myWebProject1.dll'.
Run Code Online (Sandbox Code Playgroud)

当我在本地运行它时,它的工作原理.

当我将本地输出与构建服务器输出进行比较时,构建服务器上缺少文件.就像我的构建服务器输出目录中缺少global.asax文件一样(但是当我在本地编译它时却没有).这是为什么?

这是我目前的MSBuildScript:

<?xml version="1.0" encoding="utf-8"?>
<Project
  xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
  ToolsVersion="4.0"
  DefaultTargets="Build">

  <PropertyGroup>
    <OutputDir>C:\MSBUILDRELEASE</OutputDir>
  </PropertyGroup>

  <ItemGroup>
    <ProjectToBuild Include="UtilityApp.sln" >
      <Properties>OutputPath=$(OutputDir);Configuration=MSBuildRelease;Platform=x86</Properties>
    </ProjectToBuild>
  </ItemGroup>

  <Target Name="Build">
    <MSBuild Projects="@(ProjectToBuild)"/>
            <CallTarget Targets="Publish WebProject1" />
            <CallTarget Targets="Publish WebProject2" />  
  </Target>

<Target Name="Publish WebProject1">
 <RemoveDir Directories="$(OutputFolder)"
       ContinueOnError="true" />
 <MSBuild Projects="WebProject1\WebProject1.csproj"
      Targets="ResolveReferences;_CopyWebApplication"
      Properties="WebProjectOutputDir=$(OutputDir)\WebProject1\; …
Run Code Online (Sandbox Code Playgroud)

.net msbuild teamcity .net-4.0 msbuild-task

23
推荐指数
2
解决办法
5万
查看次数

使用MSBuild构建多个配置

我正在尝试编辑我的项目文件,以便让我拥有一个可以同时构建多个构建配置的项目.我使用批处理方法并使用MSBuild任务(见下文)完成了这项工作.

如果我运行脚本,我会收到此错误:

错误103未为项目"ThisMSBuildProjectFile.csproj"设置OutputPath属性.请检查以确保您为此项目指定了Configuration和Platform的有效组合.Configuration ='Debug'Blatform ='AnyCPU'.

如果我从MSBuild任务添加或省略OutputPath,我会得到这个.如果使用VS2010调试器逐步执行脚本并调用MSBuild任务 - 调试器再次进入文件然后进入OutputPath,那么afaik,它应该选择该值,不是吗?

任何帮助都将非常感激 - 它让我发疯.谢谢,保罗.

这个MSBuildProjectFile.csproj(剩余的东西取出):

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">

  <!-- Only Import normal targets if not building multiple projects -->
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" Condition="'$(Configuration)|$(Platform)' != 'AllBuild|AnyCPU' "/>

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == '' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>C:\Folder\Etc\Output\$(Configuration)\</OutputPath>
    <OutDir>C:\Folder\Etc\Output\$(Configuration)\</OutDir>
    <BaseOutputPath>C:\Folder\Etc\Output\$(Configuration)\</BaseOutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>

  <!-- Common -->
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <Platform>AnyCPU</Platform>
    <!-- Repeated properties from above here (including, of course, OutputPath) -->  
   </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' …
Run Code Online (Sandbox Code Playgroud)

msbuild msbuild-task buildconfiguration

22
推荐指数
2
解决办法
4万
查看次数

MSBuild UsingTask解析引用

我觉得我以前修过这个,但我记不起来了.

我有一个看起来像这样的任务文件(CustomTasks.tasks):

<UsingTask AssemblyFile="CustomTasks.dll" TaskName="MyCustomTask"/>
Run Code Online (Sandbox Code Playgroud)

它引用了一个程序集(即Ionic.Zip.dll).Ionic.Zip.dll不在GAC中(我不希望它).它就在我的CustomTasks.dll旁边.

我有一个名为MSBuild的目录,从我的sln文件向上一级,其中包含CustomTasks.tasks,CustomTasks.dll和Ionic.Zip.dll.

我有一个csproj引用任务文件并调用自定义任务:

<Import Project="$(ProjectDir)\..\MSBuild\CustomTasks.tasks" />

<MyCustomTask ..... />
Run Code Online (Sandbox Code Playgroud)

在构建时,这会产生:

无法从程序集加载"MyCustomTask"任务.... MyCustomTasks.dll.无法加载文件或程序集'Ionic.Zip,......'或其依赖项之一.

msbuild msbuild-task

22
推荐指数
1
解决办法
8839
查看次数

Visual Studio项目中的AfterBuild任务顺序......?

我在Visual Studio项目中定义了几个具有不同条件的AfterBuild - Tasks:

<Target Name="AfterBuild" Condition="'$(Configuration)'=='FinalBuilder'">
    <Message Importance="high" Text="--- AfterBuild for FinalBuilder ---" />
</Target>
<Target Name="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
    <Message Importance="high" Text="--- AfterBuild for MvcBuildViews ---" />
</Target>
Run Code Online (Sandbox Code Playgroud)

但是如果条件匹配,则只执行最后一个.如果我选择FinalBuilder-Configuration,则忽略AfterBuild任务而不执行.如果我更改项目文件中的Targets的顺序(Condition ="'$(Configuration)'=''FinalBuilder'"作为最后一个),则执行AfterBuild for FinalBuilder-Configuration但忽略MvcBuildViews的.

目标的顺序是否重要?是否只考虑了最后的AfterBuild任务?或者如何使用不同的条件定义不同的AfterBuild任务?

谢谢

康拉德

msbuild msbuild-task visual-studio-2010 visual-studio-project

21
推荐指数
2
解决办法
5723
查看次数

让Jenkins了解自定义NuGet包源

我有一些关于Jenkins和NuGet包恢复的问题.

我正在尝试做的是在jenkins上构建解决方案(它工作得非常好).我已为解决方案启用了包还原,生成包含NuGet.exe,NuGet.Config和NuGet.targets的.nuget文件夹.

在Jenkins,我正在我们服务器上的私有包源中创建一些项目作为NuGet包.我在其他项目中使用这些包,应该在jenkins自己的基础上构建.

VS了解私有包源,它在全局NuGet.Config文件(AppData下的文件)中配置,并且未被禁用(默认情况下).

现在,当我尝试构建一个需要来自私有包源的包的解决方案时,构建失败,因为jenkins不知道它,因此-source在恢复未被替换为jenkins的包时提交空参数不知道自定义源.

到目前为止我尝试过的

  1. 我已经知道将私有源添加到解决方案NuGet.Config-或NuGet.Targets-file Package-Source将解决问题,但这意味着,我必须为我想要使用Jenkins构建的每个解决方案这样做.

  2. 我还通过将源代码添加到文件中的package-source标签,甚至使其成为活动源,在AppData和ProgramData中使用了配置文件,但是这也没有帮助.

  3. cource,提交包将是一种解决方法,但这不是理想的结果,因为我们想忽略scm中的包.

基本上,我想知道是否有办法让Jenkins不断了解私有包源,或者操纵开发人员机器上的NuGet安装,以便生成NuGet.targets包含私有包源的-file. .另一个可能的修复是msbuild的参数,我不知道.

任何帮助是极大的赞赏!

msbuild msbuild-task nuget jenkins nuget-package-restore

20
推荐指数
2
解决办法
1万
查看次数

MSBuild任务配置属性

我有三个Visual Studio解决方案.第一个配置为构建为Release,另外两个设置为构建为Debug.

当运行一个简单的MSBuild脚本显式声明要构建的配置(Debug)时,第一个项目仍然构建为Release.

示例脚本:

<Target Name="Build">
    <ItemGroup>
        <ProjectToBuild Include="$(SolutionsPath)\Solution1.sln"/>
        <ProjectToBuild Include="$(SolutionsPath)\Core\Solution2.sln"/>
        <ProjectToBuild Include="$(SolutionsPath)\UI\Solution3.sln"/>
    </ItemGroup>
    <MSBuild Projects="@(ProjectToBuild)"
             Targets="Rebuild"
             Properties="Configuration=Debug;Platform=Any CPU"/>
</Target>
Run Code Online (Sandbox Code Playgroud)

我已经尝试了以上的变体,如下所示,但我总是得到相同的结果.

<Target Name="Build">
    <ItemGroup>
        <ProjectToBuild Include="$(SolutionsPath)\Solution1.sln">
            <Properties>Configuration=Debug</Properties>
        </ProjectToBuild>

        <ProjectToBuild Include="$(SolutionsPath)\Core\Solution2.sln">
            <Properties>Configuration=Debug</Properties>
        </ProjectToBuild>

        <ProjectToBuild Include="$(SolutionsPath)\UI\Solution3.sln">
            <Properties>Configuration=Debug</Properties>
        </ProjectToBuild>
    </ItemGroup>
    <MSBuild Projects="@(ProjectToBuild)"
             Targets="Rebuild"
             Properties="Platform=Any CPU"/>
</Target>
Run Code Online (Sandbox Code Playgroud)

我注意到有一个类似的问题,MSBuild任务 - 构建失败,因为一个解决方案是在发布而不是调试中构建的,但这是特定于TFS和Teambuild.我正在谈论纯MSBuild与从头开始创建的简单项目文件.

我该如何解决这个问题?

msbuild msbuild-task

19
推荐指数
3
解决办法
4万
查看次数

如何使用AssemblyInfoTask更改程序集版本号?

我正在尝试自动化为所有DLL设置版本的过程,花了一些时间后我才开始了解AssemblyInfo最有可能实现的任务.

所以我继续安装它,特别是版本1.0.51130.0.

安装后,我手动添加的Import标签(通过卸载每个项目)的AssemblyInfoTask.cspoj文件(该溶液具有大于35个PROJ文件).

<Import Project="$(MSBuildExtensionsPath)\Microsoft\AssemblyInfoTask\Microsoft.VersionNumber.Targets"/>
Run Code Online (Sandbox Code Playgroud)

接下来我修改了Microsoft.VersionNUmber.Target将在path:中安装的文件C:\Program Files\MSBuild\Microsoft\AssemblyInfoTask,并修改了以下部分:

<!-- Properties for controlling the Assembly Version -->
<PropertyGroup>
    <AssemblyMajorVersion>4</AssemblyMajorVersion>
    <AssemblyMinorVersion>0</AssemblyMinorVersion>
    <AssemblyBuildNumber></AssemblyBuildNumber>
    <AssemblyRevision></AssemblyRevision>
    <AssemblyBuildNumberType>DateString</AssemblyBuildNumberType>
    <AssemblyBuildNumberFormat>01MMdd</AssemblyBuildNumberFormat>
    <AssemblyRevisionType>AutoIncrement</AssemblyRevisionType>
    <AssemblyRevisionFormat>00</AssemblyRevisionFormat>
</PropertyGroup>

<!-- Properties for controlling the Assembly File Version -->  
<PropertyGroup>
    <AssemblyFileMajorVersion>4</AssemblyFileMajorVersion>
    <AssemblyFileMinorVersion>0</AssemblyFileMinorVersion>
    <AssemblyFileBuildNumber></AssemblyFileBuildNumber>
    <AssemblyFileRevision></AssemblyFileRevision>
    <AssemblyFileBuildNumberType>DateString</AssemblyFileBuildNumberType>
    <AssemblyFileBuildNumberFormat>01MMdd</AssemblyFileBuildNumberFormat>
    <AssemblyFileRevisionType>AutoIncrement</AssemblyFileRevisionType>
    <AssemblyFileRevisionFormat>00</AssemblyFileRevisionFormat>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

接下来,我将assemblyInfo.cs文件的版本设置1.0.0.0为每个项目.最后我保存并关闭它,重新打开解决方案并构建.它就像一个冠军!

现在什么要的是定制版本来4.0.1053.1这里10是今年指标是2010年的部分53代表周数,最后1表示版本号.

如何使用AssemblyInfoTask 实现这一目标?我发现了几个帖子,AssemblyInfo在Build Extension Pack中可以使用新版本的Task. …

msbuild msbuild-task

19
推荐指数
3
解决办法
4万
查看次数

MSBuild 2010 - 如何将Web应用程序发布到特定位置(nant)?

我正在尝试让MSBuild 2010将Web应用程序发布到特定位置.我可以将部署包发布到特定路径,但部署包然后添加自己的路径更改.

例如:如果我告诉它发布到C:\dev\build\Output\Debug那时实际的web文件最终在C:\dev\build\Output\Debug\Archive\Content\C_C\code\app\Source\ControllersViews\obj\Debug\Package\PackageTmpC_C路径的一部分改变(不确定它如何选择路径的这一部分).

这意味着我不能只从发布位置编写副本.

我现在正在使用这个nant/msbuild命令:

  <target name="compile" description="Compiles">
<msbuild project="${name}.sln">

  <property name="Platform" value="Any CPU"/>
  <property name="Configuration" value="Debug"/>
  <property name="DeployOnBuild" value="true"/>
  <property name="DeployTarget" value="Package"/>
  <property name="PackageLocation" value="C:\dev\build\Output\Debug\"/>
  <property name="AutoParameterizationWebConfigConnectionStrings" value="false"/>
  <property name="PackageAsSingleFile" value="false"/>

</msbuild>
Run Code Online (Sandbox Code Playgroud)

有关如何将Web文件直接发送到特定位置的任何想法?

msbuild nant msbuild-task visual-studio-2010 nant-task

17
推荐指数
1
解决办法
2万
查看次数

MSBuild MSBuildCommunityTasks任务时间

我有一个MSBuild项目,我希望将当前日期添加到我正在创建的zip文件中.

我正在使用MSBuildCommunityTasks.

<!-- Import the CommunityTasks Helpper -->
<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" />
Run Code Online (Sandbox Code Playgroud)

在网站http://msbuildtasks.tigris.org/上我可以看到一个叫做时间的任务.我还没能找到关于如何使用Time的文档.

msbuild msbuild-task msbuildcommunitytasks

16
推荐指数
2
解决办法
1万
查看次数