У меня есть проект веб-сайта .Net 3.5, который я разрабатываю в VS2010 (недавно перенесенный из VS2008) и собираю / разворачиваю с помощью MSBuild и TeamCity.Я использую инструменты Msbuild версии 3.5.Проект веб-сайта связывается с парой COM-компонентов через Interop-dll.Как я понимаю, эти взаимодействия генерируются Visual Studio как оболочка для компонента COM.Моя проблема заключается в том, что когда приложение создается и разворачивается с использованием Microsoft.WebDeployments.targets, я получаю сообщение об ошибке во время выполнения, в котором говорится:
Не удалось загрузить файл или сборку Interop.cvvToolkitLib или одну из ее зависимостей.,Была предпринята попытка загрузить программу с неправильным форматом.
После поиска в Google похожих проблем я обнаружил множество сообщений о том, что сборка для AnyCpu должна решить эту проблему, поскольку инструмент, который являетсягенерация interops по умолчанию x86.
Итак, я открыл свой скрипт сборки и попытался указать платформу как AnyCpu:
<Platform>AnyCPU</Platform>
Все та же проблема.Более гугл намекнул, что это может быть «AnyCpu» или «Любой процессор» вместо этого, поэтому я попробовал оба.Все еще не повезло.Другие сообщения на форуме предлагали что-то вроде этого:
<ItemGroup>
<ConfigurationToBuild Include="Release|Any CPU">
<FlavorToBuild>Release</FlavorToBuild>
<PlatformToBuild>Any CPU</PlatformToBuild>
</ConfigurationToBuild>
</ItemGroup>
или
<PlatformTarget>AnyCPU</PlatformTarget>
Ошибка остается прежней.Итак, мой вопрос к вам: stackoverflowers: я делаю что-то не так, пытаясь создать веб-сайт для любого процессора, или решение, возможно, лежит где-то еще?Должен ли я явно передавать некоторые аргументы в <CallTarget Targets="Build"/>
?
Я не очень разбираюсь в MSbuild, поэтому я могу упустить что-то важное.У меня есть другие веб-приложения (не веб-сайты), которые общаются с теми же компонентами COM без каких-либо проблем, так что это проблема только для веб-сайтов.Веб-приложения создаются следующим образом:
<MSBuild
Projects="$(ProjectFile)"
StopOnFirstFailure="true"
Targets="ResolveReferences;_CopyWebApplication;_BuiltWebOutputGroupOutput"
Properties="...Platform=AnyCPU..." />
Здесь я передаю Платформу как свойство, поэтому просто предполагаю, что мне нужно нечто подобное для веб-сайтов.