2016-07-25 300 views
1

我正在嘗試使用ClickOnce部署WPF應用程序。當我嘗試發佈我的app我讓下面的生成錯誤:ClickOnce發佈時出錯

"obj\Debug....csproj.App.config;obj\Debug....exe.config" is an invalid value for the "ConfigFile" parameter of the "GenerateApplicationManifest" task. Multiple items cannot be passed into a parameter of type "Microsoft.Build.Framework.ITaskItem".

我關掉Enable ClickOnce security settingsProperties Security標籤和應用程序建立正常,但當我嘗試發佈我的app,此選項回頭自動和我再次獲取錯誤。

有什麼想法?

的.csproj的文件:

<?xml version="1.0" encoding="utf-8"?> 
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> 
    <PropertyGroup> 
    <AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects> 
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> 
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> 
    <ProjectGuid>{69869EA8-6B7F-4619-B2FD-330ACD1C67DC}</ProjectGuid> 
    <OutputType>WinExe</OutputType> 
    <AppDesignerFolder>Properties</AppDesignerFolder> 
    <RootNamespace>XXXXX</RootNamespace> 
    <AssemblyName>XXXXX</AssemblyName> 
    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion> 
    <FileAlignment>512</FileAlignment> 
    <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> 
    <WarningLevel>4</WarningLevel> 
    <SccProjectName>SAK</SccProjectName> 
    <SccLocalPath>SAK</SccLocalPath> 
    <SccAuxPath>SAK</SccAuxPath> 
    <SccProvider>SAK</SccProvider> 
    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir> 
    <RestorePackages>true</RestorePackages> 
    <IsWebBootstrapper>false</IsWebBootstrapper> 
    <PublishUrl>D:\Prj\Deployments\YYYY\</PublishUrl> 
    <Install>true</Install> 
    <InstallFrom>Unc</InstallFrom> 
    <UpdateEnabled>true</UpdateEnabled> 
    <UpdateMode>Foreground</UpdateMode> 
    <UpdateInterval>7</UpdateInterval> 
    <UpdateIntervalUnits>Days</UpdateIntervalUnits> 
    <UpdatePeriodically>false</UpdatePeriodically> 
    <UpdateRequired>true</UpdateRequired> 
    <MapFileExtensions>true</MapFileExtensions> 
    <InstallUrl>\\localhost\TEMP\Deployments\</InstallUrl> 
    <UpdateUrl>http://localhost</UpdateUrl> 
    <SupportUrl>http://localhost</SupportUrl> 
    <ProductName>YYYY</ProductName> 
    <PublisherName>ZZZZ YYYY</PublisherName> 
    <SuiteName>ZZZZ YYYY</SuiteName> 
    <MinimumRequiredVersion>1.0.0.1</MinimumRequiredVersion> 
    <ApplicationRevision>1</ApplicationRevision> 
    <ApplicationVersion>1.0.0.%2a</ApplicationVersion> 
    <UseApplicationTrust>false</UseApplicationTrust> 
    <CreateDesktopShortcut>true</CreateDesktopShortcut> 
    <PublishWizardCompleted>true</PublishWizardCompleted> 
    <BootstrapperEnabled>true</BootstrapperEnabled> 
    </PropertyGroup> 
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> 
    <PlatformTarget>AnyCPU</PlatformTarget> 
    <DebugSymbols>true</DebugSymbols> 
    <DebugType>full</DebugType> 
    <Optimize>false</Optimize> 
    <OutputPath>bin\Debug\</OutputPath> 
    <DefineConstants>DEBUG;TRACE</DefineConstants> 
    <ErrorReport>prompt</ErrorReport> 
    <WarningLevel>4</WarningLevel> 
    <UseVSHostingProcess>false</UseVSHostingProcess> 
    </PropertyGroup> 
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> 
    <PlatformTarget>x86</PlatformTarget> 
    <DebugType>pdbonly</DebugType> 
    <Optimize>true</Optimize> 
    <OutputPath>bin\Release\</OutputPath> 
    <DefineConstants>TRACE</DefineConstants> 
    <ErrorReport>prompt</ErrorReport> 
    <WarningLevel>4</WarningLevel> 
    </PropertyGroup> 
    <PropertyGroup> 
    <ManifestCertificateThumbprint>8F11330D41A056DBB7C8E399BE6B43740EC64755</ManifestCertificateThumbprint> 
    </PropertyGroup> 
    <PropertyGroup> 
    <ManifestKeyFile>XXXXX_TemporaryKey.pfx</ManifestKeyFile> 
    </PropertyGroup> 
    <PropertyGroup> 
    <GenerateManifests>true</GenerateManifests> 
    </PropertyGroup> 
    <PropertyGroup> 
    <TargetZone>Custom</TargetZone> 
    </PropertyGroup> 
    <PropertyGroup> 
    <SignManifests>true</SignManifests> 
    </PropertyGroup> 
    <ItemGroup> 
    ... 
    <Reference Include="WindowsBase" /> 
    <Reference Include="PresentationCore" /> 
    <Reference Include="PresentationFramework" /> 
    </ItemGroup> 
    <ItemGroup> 
    <ApplicationDefinition Include="App.xaml"> 
     <Generator>MSBuild:Compile</Generator> 
     <SubType>Designer</SubType> 
    </ApplicationDefinition> 
    <Compile Include="App.xaml.cs"> 
     <DependentUpon>App.xaml</DependentUpon> 
     <SubType>Code</SubType> 
    </Compile> 
    <Compile Include="Bootstrapper.cs" /> 
    <Compile Include="Resources\TestTheme.xaml.cs"> 
     <DependentUpon>TestTheme.xaml</DependentUpon> 
    </Compile> 
    <Compile Include="Shell.xaml.cs"> 
     <DependentUpon>Shell.xaml</DependentUpon> 
    </Compile> 
    </ItemGroup> 
    <ItemGroup> 
    <Compile Include="Properties\AssemblyInfo.cs"> 
     <SubType>Code</SubType> 
    </Compile> 
    <Compile Include="Properties\Resources.Designer.cs"> 
     <AutoGen>True</AutoGen> 
     <DesignTime>True</DesignTime> 
     <DependentUpon>Resources.resx</DependentUpon> 
    </Compile> 
    <Compile Include="Properties\Settings.Designer.cs"> 
     <AutoGen>True</AutoGen> 
     <DependentUpon>Settings.settings</DependentUpon> 
     <DesignTimeSharedInput>True</DesignTimeSharedInput> 
    </Compile> 
    <EmbeddedResource Include="Properties\Resources.resx"> 
     <Generator>ResXFileCodeGenerator</Generator> 
     <LastGenOutput>Resources.Designer.cs</LastGenOutput> 
    </EmbeddedResource> 
    <None Include="App.Debug.config"> 
     <DependentUpon>App.config</DependentUpon> 
    </None> 
    <None Include="App.Release.config"> 
     <DependentUpon>App.config</DependentUpon> 
    </None> 
    <Content Include="NLog.config"> 
     <CopyToOutputDirectory>Always</CopyToOutputDirectory> 
    </Content> 
    <None Include="XXXXX_TemporaryKey.pfx" /> 
    <None Include="NLog.xsd"> 
     <SubType>Designer</SubType> 
    </None> 
    <None Include="packages.config" /> 
    <None Include="Properties\app.manifest"> 
     <SubType>Designer</SubType> 
    </None> 
    <None Include="Properties\Settings.settings"> 
     <Generator>SettingsSingleFileGenerator</Generator> 
     <LastGenOutput>Settings.Designer.cs</LastGenOutput> 
    </None> 
    <AppDesigner Include="Properties\" /> 
    </ItemGroup> 
    <ItemGroup> 
    <None Include="App.config"> 
     <SubType>Designer</SubType> 
    </None> 
    </ItemGroup> 
    <ItemGroup> 
    <ProjectReference Include="..\..\..\..\Framework\Entidad\ZZZZ.AAAA.Entidad\ZZZZ.AAAA.Entidad.csproj"> 
     <Project>{6c7ed6cb-c453-41bc-9bfc-e9105a065615}</Project> 
     <Name>ZZZZ.AAAA.Entidad</Name> 
    </ProjectReference> 
    <ProjectReference Include="..\BBBB.Contracts\BBBB.Contracts.csproj"> 
     <Project>{65bab214-c87d-496f-b7ce-03a73aa3a685}</Project> 
     <Name>BBBB.Contracts</Name> 
    </ProjectReference> 
    <ProjectReference Include="..\BBBB.Entidad\BBBB.Entidad.csproj"> 
     <Project>{4a61ec1c-253d-477c-a8c9-87aef600d69d}</Project> 
     <Name>BBBB.Entidad</Name> 
    </ProjectReference> 
    <ProjectReference Include="..\BBBB.Localizacion\BBBB.Localizacion.csproj"> 
     <Project>{fe2246fa-ba74-4e91-9ad9-c2606c2ba4b1}</Project> 
     <Name>BBBB.Localizacion</Name> 
    </ProjectReference> 
    <ProjectReference Include="..\BBBB.Presentation.Core\BBBB.Presentation.Core.csproj"> 
     <Project>{5b1b5735-ee66-4956-b68c-429cc6b01ea0}</Project> 
     <Name>BBBB.Presentation.Core</Name> 
    </ProjectReference> 
    <ProjectReference Include="..\BBBB.Resources\BBBB.Resources.csproj"> 
     <Project>{0f408753-5a8c-4780-8280-1bed14660c69}</Project> 
     <Name>BBBB.Resources</Name> 
    </ProjectReference> 
    <ProjectReference Include="..\XXXXX.Comun\XXXXX.Comun.csproj"> 
     <Project>{4b0efbde-e1c8-4c54-a43c-c7d5f85dd95f}</Project> 
     <Name>XXXXX.Comun</Name> 
    </ProjectReference> 
    <ProjectReference Include="..\XXXXX.ScreenKeyboard\XXXXX.ScreenKeyboard.csproj"> 
     <Project>{6b779f3c-fa16-4bb8-96a8-ab5296694235}</Project> 
     <Name>XXXXX.ScreenKeyboard</Name> 
    </ProjectReference> 
    <ProjectReference Include="..\BBBB.WebApi.Client\BBBB.WebApi.Client.csproj"> 
     <Project>{45a506ec-bee9-4ea1-9a7d-fef5491f2859}</Project> 
     <Name>BBBB.WebApi.Client</Name> 
    </ProjectReference> 
    <ProjectReference Include="..\BBBB.WebApi.Contracts\BBBB.WebApi.Contracts.csproj"> 
     <Project>{1c5240a4-7946-4817-8cf6-70de8a637299}</Project> 
     <Name>BBBB.WebApi.Contracts</Name> 
    </ProjectReference> 
    <ProjectReference Include="..\Mocks.WebApi.Client\Mocks.WebApi.Client.csproj"> 
     <Project>{21a66fd4-3548-4c18-805d-5d5ae5246cad}</Project> 
     <Name>Mocks.WebApi.Client</Name> 
    </ProjectReference> 
    </ItemGroup> 
    <ItemGroup> 
    <Page Include="Resources\TestTheme.xaml"> 
     <SubType>Designer</SubType> 
     <Generator>MSBuild:Compile</Generator> 
    </Page> 
    <Page Include="Shell.xaml"> 
     <SubType>Designer</SubType> 
     <Generator>MSBuild:Compile</Generator> 
    </Page> 
    </ItemGroup> 
    <ItemGroup> 
    <BootstrapperPackage Include=".NETFramework,Version=v4.5"> 
     <Visible>False</Visible> 
     <ProductName>Microsoft .NET Framework 4.5 %28x86 and x64%29</ProductName> 
     <Install>true</Install> 
    </BootstrapperPackage> 
    <BootstrapperPackage Include="Microsoft.Net.Client.3.5"> 
     <Visible>False</Visible> 
     <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName> 
     <Install>false</Install> 
    </BootstrapperPackage> 
    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1"> 
     <Visible>False</Visible> 
     <ProductName>.NET Framework 3.5 SP1</ProductName> 
     <Install>false</Install> 
    </BootstrapperPackage> 
    <BootstrapperPackage Include="Microsoft.Windows.Installer.4.5"> 
     <Visible>False</Visible> 
     <ProductName>Windows Installer 4.5</ProductName> 
     <Install>true</Install> 
    </BootstrapperPackage> 
    </ItemGroup> 
    <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> 
    <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" /> 
    <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> 
    <PropertyGroup> 
     <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> 
    </PropertyGroup> 
    <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" /> 
    </Target> 
    <Import Project="..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets" Condition="Exists('..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" /> 
    <Target Name="EnsureBclBuildImported" BeforeTargets="BeforeBuild" Condition="'$(BclBuildImported)' == ''"> 
    <Error Condition="!Exists('..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" Text="This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=317567." HelpKeyword="BCLBUILD2001" /> 
    <Error Condition="Exists('..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" Text="The build restored NuGet packages. Build the project again to include these packages in the build. For more information, see http://go.microsoft.com/fwlink/?LinkID=317568." HelpKeyword="BCLBUILD2002" /> 
    </Target> 
    <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
     Other similar extension points exist, see Microsoft.Common.targets. 
    <Target Name="BeforeBuild"> 
    </Target> 
    <Target Name="AfterBuild"> 
    </Target> 
    --> 
    <UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Web\Microsoft.Web.Publishing.Tasks.dll" /> 
    <Target Name="AfterCompile" Condition="Exists('App.$(Configuration).config')"> 
    <!--Generate transformed app config in the intermediate directory--> 
    <TransformXml Source="App.config" Destination="$(IntermediateOutputPath)$(TargetFileName).config" Transform="App.$(Configuration).config" /> 
    <!--Force build process to use the transformed configuration file from now on.--> 
    <ItemGroup> 
     <AppConfigWithTargetPath Remove="App.config" /> 
     <AppConfigWithTargetPath Include="$(IntermediateOutputPath)$(TargetFileName).config"> 
     <TargetPath>$(TargetFileName).config</TargetPath> 
     </AppConfigWithTargetPath> 
    </ItemGroup> 
    </Target> 
    <!--Override After Publish to support ClickOnce AfterPublish. Target replaces the untransformed config file copied to the deployment directory with the transformed one.--> 
    <Target Name="AfterPublish"> 
    <PropertyGroup> 
     <DeployedConfig>$(_DeploymentApplicationDir)$(TargetName)$(TargetExt).config$(_DeploymentFileMappingExtension)</DeployedConfig> 
    </PropertyGroup> 
    <!--Publish copies the untransformed App.config to deployment directory so overwrite it--> 
    <Copy Condition="Exists('$(DeployedConfig)')" SourceFiles="$(IntermediateOutputPath)$(TargetFileName).config" DestinationFiles="$(DeployedConfig)" /> 
    </Target> 
    <PropertyGroup> 
    <PreBuildEvent>(if exist "$(TargetDir)*old.pdb" del "$(TargetDir)*old.pdb") &amp; (if exist "$(TargetDir)*.pdb" ren "$(TargetDir)*.pdb" *.old.pdb)</PreBuildEvent> 
    </PropertyGroup> 
</Project> 

回答

0

嘗試編輯項目的.csproj文件,幷包括以下<PropertyGroup>以下行:

<AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects> 
1

嘗試刪除從OBJ \ debug文件夾中的文件,並嘗試發佈再次。 同時檢查您是否簽署clickonce清單複選框被選中或不是?

enter image description here

+0

我從啓動項目中刪除了obj/debug文件夾,並且檢查了「簽名clickonce清單」並且沒有任何更改,項目無法編譯。 –

+0

你能否取消選中清單複選框,並讓我知道你是否面臨同樣的問題? –

+0

取消選中清單我得到相同的錯誤:「obj \ Debug \ ... .csproj.App.config; obj \ Debug \ .... exe.config」對於「ConfigFile」參數的「 GenerateApplicationManifest「任務。多個項目不能傳遞到「Microsoft.Build.Framework.ITaskItem」類型的參數中。只有取消選中安全/啓用ClickOnce安全設置,項目才能正常編譯 –

0

最後,我發現這個問題。在該行的.csproj文件:

<Target Name="AfterCompile" Condition="Exists('App.$(Configuration).config')"> 
    <!--Generate transformed app config in the intermediate directory--> 
    <TransformXml Source="App.config" Destination="$(IntermediateOutputPath)$(TargetFileName).config" Transform="App.$(Configuration).config" /> 
    <!--Force build process to use the transformed configuration file from now on.--> 
    <ItemGroup> 
     <AppConfigWithTargetPath Remove="App.config" /> 
     <AppConfigWithTargetPath Include="$(IntermediateOutputPath)$(TargetFileName).config"> 
     <TargetPath>$(TargetFileName).config</TargetPath> 
     </AppConfigWithTargetPath> 
    </ItemGroup> 
    </Target> 

我刪除了塊:

<ItemGroup> 
      <AppConfigWithTargetPath Remove="App.config" /> 
      <AppConfigWithTargetPath Include="$(IntermediateOutputPath)$(TargetFileName).config"> 
      <TargetPath>$(TargetFileName).config</TargetPath> 
      </AppConfigWithTargetPath> 
     </ItemGroup> 

,目前該項目正在順利建設。