T4MVC «Запустить пользовательский инструмент» генерирует предупреждение EnvDTO 7.0 против 8.0 csc - PullRequest
11 голосов
/ 26 июля 2011

Я получаю следующее предупреждение, когда щелкаю правой кнопкой мыши на T4MVC.tt и выбираю «запустить пользовательский инструмент» (т.е. перестраивать по файлу T4MVC.cs).

Предупреждение 1 Преобразование компиляции: при условии ссылки на сборку 'EnvDTE, версия = 7.0.3300.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a' соответствует EnvDTE, версия = 8.0.0.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a ', вам может потребоваться предоставить политику выполнения C: \ Development \ EHealth-Trunk \ src \ EHealth.Web \ T4MVC.tt 1 1

Это не так уж и страшно, я просто не хочу иметь (ненужные) предупреждения в моей кодовой базе ...

Ответы [ 3 ]

3 голосов
/ 26 июля 2011

Я не совсем понял, в чем проблема, но я изолировал ее в маленьком репро, где это происходит:

<#@ template language="C#" #>
<#@ assembly name="EnvDTE" #>
<#@ assembly name="VSLangProj" #>

<#+ 
void Test(EnvDTE.Project Project) {
    var vsProject = (VSLangProj.VSProject)Project.Object;
    var refs = vsProject.References;
}
#>

, который получает следующее предупреждение во время обработки:

Compiling transformation: Assuming assembly reference 'EnvDTE, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' matches 'EnvDTE, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a', you may need to supply runtime policy

Единственный EnvDTE в моем GAC - это 8.0.0.0. Кажется, что проблема связана с тем, что VSLangProj 7.0.3300.0 (единственный, который у меня есть) имеет ссылку на EnvDTE 7.0.3300.0, которого не существует.

Ясно, что это еще не «ответ», но это начало расследования:)

2 голосов
/ 27 июля 2011

Изменение:

<# @ assembly name = "EnvDTE" #>

Кому:

<# @ assembly name = "EnvDTE, версия = 8.0.0.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a" #>

в T4MVC.tt, и это удалит предупреждение компилятора:)

Дэвид - Я собираюсь в ближайшее время отправить запрос на удаление с исправлением в MvcContrib - просто дайте мне знать, что вы довольны этим решением, прежде чем я его сделаю:)

1 голос
/ 11 июля 2013

Добавьте app.config и вставьте этот код ниже:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1" appliesTo="v2.0.50318">
        <dependentAssembly>
            <assemblyIdentity name="EnvDTE" publicKeyToken=
            "b03f5f7f11d50a3a"/>
            <bindingRedirect oldVersion="7.0.3300.0" 
            newVersion="8.0.0.0"/>
        </dependentAssembly>
    </assemblyBinding>
</runtime>

...